package 拆装箱;

import java.util.function.DoubleToIntFunction;

/**
 * 装箱/装包：将基本数据类型-->包装类
 *      自动装箱：Integer I = i;
 *      手动装箱：Integer In = Integer.valueOf(i);
 *
 * 拆箱/拆包：将包装类-->基本数据类型
 *      自动拆包：double d = D;
 *      手动拆包：double dd = D.doubleValue();
 */



public class TestDemo {
    public static void main1(String[] args) {
        int i = 10;
        Integer I = i; //自动装箱

        Integer In = Integer.valueOf(i);  //手动装箱

        System.out.println(I);
        System.out.println(In);

        Double D = 1.2;
        double d = D;       //自动拆箱
        System.out.println(d);

        double dd = D.doubleValue();  //手动拆箱
        System.out.println(dd);

    }


    public static void main(String[] args) {
        //面试题:
        /**
         * 该面试题涉及到String.valueOf源码,请查看！
         * Integer中存储的数据：-128~127之间，不开辟新的对象；超过这个范围，就要return new Integer(i);
         */
        Integer a = 100;
        Integer b = 100;
        System.out.println(a == b);  //true

        Integer c = 200;
        Integer d = 200;
        System.out.println(c==d);  //false
    }

}
